/**
 * 
 */
package interfaces.kernel;

/**
 * @author Joubert
 * @version 1.0
 * 
 * executes the developer method using Java reflection
 *
 */
public interface JCL_skeleton {
	
	/**
	 * @param task - encapsulates object name, object method name (optional), parameters (optional)
	 * @throws Exception 
	 */
	public abstract Object execute (JCL_task task ) throws Exception;

	/**
	 * Java Ca&La uses cache to avoid Class.forName and Class.newInstance costly calls
	 * @param classID the class id
	 */
	public abstract void clearCache(String classID);
	
	/**
	 * clear all cache entries 
	 */
	public abstract void clearCache();
}
